package com.muyu.danmo.mapper;

import com.muyu.danmo.controller.DanmoPrintingMessageController;
import com.muyu.danmo.domain.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 印刷出版Mapper接口
 *
 * @author yangle
 * @date 2024-10-15
 */
public interface DanmoPrintingMessageMapper
{
    /**
     * 查询印刷出版
     *
     * @param id 印刷出版主键
     * @return 印刷出版
     */
    public DanmoPrintingMessage selectDanmoPrintingMessageById(Long id);

    /**
     * 查询印刷出版列表
     *
     * @param danmoPrintingMessage 印刷出版
     * @return 印刷出版集合
     */
    public List<DanmoPrintingMessage> selectDanmoPrintingMessageList(DanmoPrintingMessage danmoPrintingMessage);

    /**
     * 新增印刷出版
     *
     * @param danmoPrintingMessage 印刷出版
     * @return 结果
     */
    public int insertDanmoPrintingMessage(DanmoPrintingMessage danmoPrintingMessage);

    /**
     * 修改印刷出版
     *
     * @param danmoPrintingMessage 印刷出版
     * @return 结果
     */
    public int updateDanmoPrintingMessage(DanmoPrintingMessage danmoPrintingMessage);

    /**
     * 删除印刷出版
     *
     * @param id 印刷出版主键
     * @return 结果
     */
    public int deleteDanmoPrintingMessageById(Long id);

    /**
     * 批量删除印刷出版
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDanmoPrintingMessageByIds(Long[] ids);

    /**
     * 批量删除印刷出版图片
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDanmoPrintingPictureByPrintingIds(Long[] ids);

    /**
     * 批量新增印刷出版图片
     *
     * @param danmoPrintingPictureList 印刷出版图片列表
     * @return 结果
     */
    public int batchDanmoPrintingPicture(List<DanmoPrintingPicture> danmoPrintingPictureList);


    /**
     * 通过印刷出版主键删除印刷出版图片信息
     *
     * @param id 印刷出版ID
     * @return 结果
     */
    public int deleteDanmoPrintingPictureByPrintingId(Long id);

    void batchDanmoPrintingType(List<DanmoPrintingTypeRelation> list);



    void deleteDanmoPrintingPictureByIds(Long[] longs);

    void deleteDanmoPrintingTypeByIds(Long longs);

    DanmoPrintingMessage danmoPrintingMessageByUserId(Long userId);

    void deleteDanmoPrintingDoorByPrintingIds(@Param("array") List<Long> array);

    void batchDanmoPrintingDoor(@Param("list") List<DanmoPrintingDoor> danmoPrintingDoorList);

    void deleteDanmoPrintingWorksByPrintingIds(@Param("array") List<Long> array);

    void batchDanmoPrintingWorks(@Param("list") List<DanmoPrintingWorks> danmoPrintingWorksList);

    void batchDanmoPrintingInteriorPhotos(@Param("list") List<DanmoPrintingInteriorPhotos> danmoPrintingInteriorPhotosList);

    void deleteDanmoInteriorPhotos(@Param("array") List<Long> danmoWorksIdList);

    List<Long> selectDanmoDoorList(@Param("id") Long messageId);

    List<Long> selectDanmoWorksList(@Param("id") Long messageId);

    List<Long> seletDanmoInteriorPhotos(@Param("id") Long messageId);


    void deleteDanmoPrintingDoorList(@Param("id") Long id);

    void deleteDanmoPrintingInteriorPhotosList(@Param("id") Long id);

    void deleteDanmoPrintingWorksList(@Param("id") Long id);

    void deleteDanmoPrintingTypeBys(@Param("id") Long id);

    /**
     * 查询收藏列表
     * @param userId
     * @return
     */
    List<DanmoPrintingMessage> selectPrintingMessageFavoriteList(@Param("userId") Long userId);

    /**
     * 批量插入印刷出版类型对象
     * @param danmoPrintingTypeList
     */
    void insertDanmoPrintingTypes(List<DanmoPrintingType> danmoPrintingTypeList);

    List<Long> seletDanmoPrintingInteriorPhotos(@Param("messageId") Long messageId);

    /**
     * 批量删除印刷出版类型
     * @param danmoPrintingInteriorPhotos
     */
    void deletePrintingInteriorPhotos(@Param("danmoPrintingInteriorPhotos") List<Long> danmoPrintingInteriorPhotos);

    /**
     * 批量删除印刷出版室内相册
     * @param id
     */
    void deletePrintingInteriorPhotoList(@Param("id") Long id);

    List<DanmoPrintingType> selectDanmoPrintingTypeList(Long id);
}
